package com.txby.dplus.reptile;

import java.io.File;
import java.io.FileInputStream;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.util.PDFTextStripper;

import com.itextpdf.text.pdf.codec.Base64.InputStream;

/**
 * PdfBox 解析处理
* @ClassName: PdfBoxUtil 
* @Description: TODO(这里用一句话描述这个类的作用) 
* @author jacking
* @date 2018年9月11日 下午1:26:48 
*
 */
public class PdfBoxUtil{
	/**
	 * 读取pdf内容
	* @Title: pdfToText 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @param file pdf文件
	* @param @return
	* @param @throws Exception    设定文件 
	* @return String    返回类型 
	* @throws
	 */
	private static String pdfToText(File file) throws Exception {
		PDDocument document = PDDocument.load(file);
		 // 获取页码
        int pages = document.getNumberOfPages();
        // 读文本内容
        PDFTextStripper stripper = new PDFTextStripper();
        // 设置按顺序输出
        stripper.setSortByPosition(true);
        stripper.setStartPage(1);
        stripper.setEndPage(pages);
        String content = stripper.getText(document);
        System.out.println(content);     
        System.out.println(content.substring(content.indexOf("姓 名：")+"姓 名：".length(),content.indexOf("性 别")));     
		return content;
	}
	/**
	 * 根据文件流读取
	* @Title: pdfToText 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @param file
	* @param @param totalPages
	* @param @param startPage
	* @param @return
	* @param @throws Exception    设定文件 
	* @return String    返回类型 
	* @throws
	 */
	private static String pdfToText(File file,Integer totalPages,Integer startPage) throws Exception {
		PDDocument document = PDDocument.load(file);
		// 读文本内容
		PDFTextStripper stripper = new PDFTextStripper();
		// 设置按顺序输出
		stripper.setSortByPosition(true);
		stripper.setStartPage(startPage);
		stripper.setEndPage(totalPages);
		String content = stripper.getText(document);
		System.out.println(content);     
		System.out.println(content.substring(content.indexOf("姓 名：")+"姓 名：".length(),content.indexOf("性 别")));     
		return content;
	}
	/**
	 * 根据输入流读取
	* @Title: pdfToText 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @param input
	* @param @param totalPages
	* @param @param startPage
	* @param @return
	* @param @throws Exception    设定文件 
	* @return String    返回类型 
	* @throws
	 */
	private static String pdfToText(InputStream input,Integer totalPages,Integer startPage) throws Exception {
		String content=null;
		try {
			PDDocument document = PDDocument.load(input);
			// 读文本内容
			PDFTextStripper stripper = new PDFTextStripper();
			// 设置按顺序输出
			stripper.setSortByPosition(true);
			stripper.setStartPage(startPage);
			stripper.setEndPage(totalPages);
			content = stripper.getText(document);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	/*	System.out.println(content);     
		System.out.println(content.substring(content.indexOf("姓 名：")+"姓 名：".length(),content.indexOf("性 别")));    */ 
		return content;
	}
	
	 public static String bytesToHexString(byte[] src) {
	        StringBuilder stringBuilder = new StringBuilder();
	        if (src == null || src.length <= 0) {
	            return null;
	        }
	        for (int i = 0; i < src.length; i++) {
	            int v = src[i] & 0xFF;
	            String hv = Integer.toHexString(v);
	            if (hv.length() < 2) {
	                stringBuilder.append(0);
	            }
	            stringBuilder.append(hv);
	        }
	        return stringBuilder.toString();
	    }
 
	
/*	public static void main(String[] args) {
		File file = new File("C:\\Users\\Administrator\\Desktop\\铂矩骨科网站\\5bd01e5264d24a96adf021d489985b4b.pdf");
		try {
			pdfToText(file);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	} */
	 
	 public static void main(String[] args) throws Exception {
		 String path="C:\\Users\\Administrator\\Desktop\\铂矩骨科网站\\5bd01e5264d24a96adf021d489985b4b.pdf";
		 path="C:\\Users\\Administrator\\Desktop\\交接文档\\交接项目名录.docx";
	        FileInputStream is = new FileInputStream(path);
	        byte[] b = new byte[3];
	        is.read(b, 0, b.length);
	        String xxx = bytesToHexString(b);
	        xxx = xxx.toUpperCase();
	        System.out.println("头文件是：" + xxx);
	        String ooo = TypeDict.checkType(xxx);
	        System.out.println("后缀名是：" + ooo);

	    }
}